﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Systemet.Domain
{
    class UppföljningController
    {
        private Technical.UppföljningConnection uC;
        private Views.Uppfoljning UppMain;
        private Technical.PrognosConnection pC;
        private Domain.ProdukController pController;
        
        public void ReadKostnadsFile(List<Uppföljning> uppList, int month)
        {

            pController = new ProdukController();
            IEnumerable<Produktregister> products = pController.Produktlista;
            int value = 0;
           
               foreach (Uppföljning progn in uppList)
               {
                   if (progn.Date.Month == month)
                   {
                       value = 1;
                       foreach (Produktregister p in products)
                       {
                           if (p.produktID.TrimEnd() == progn.ProdID.TrimEnd())
                           {
                               value = 0;
                               break;
                           }

                       }
                       if (value > 0)
                       {
                           pController.CreateProductFromfile(progn.ProdID, progn.ProduktNamn);
                       }

                   }
                }


            uC = new Technical.UppföljningConnection();
            foreach (Uppföljning p in uppList)
            {
                uC.InsertKostnadsText(p); //Metoden som skriver till Linq
            }
            

        }
        public List<Prognos> GetPrognos(int month)
        {
            uC = new Technical.UppföljningConnection();
            return uC.ShowAllPrognoser(month);

        }

        public List<Uppföljning> GetUppföljning(int month)
        {
            uC = new Technical.UppföljningConnection();
            return uC.GetUppföljning(month);
        }
        public List<Prognos> RetrieveEarlierPrognoses(int month)
        {
            uC = new Technical.UppföljningConnection();
            return uC.RetrieveAllEarlierPrognoses(month);
        }
        public List<Uppföljning> RetriveEarlierUpp(int month)
        {
            uC = new Technical.UppföljningConnection();
            return uC.RetriveAllEarlierUpp(month);
        }
        public List<string> GetAllBudgetedYears()
        {
            uC = new Technical.UppföljningConnection();
            return uC.RetrieveBudgetedYears();
        }
        public int GetValidatedPrognoses(int year)
        {
            pC = new Technical.PrognosConnection();
            return pC.RetrieveBudgetedPrognosMonths(year);
        }
        public bool ValidatePrognosesLocked(int month)
        {
            pC = new Technical.PrognosConnection();
            return pC.ValidatePrognosesLockedDown(month);
        }
        public int GetValidatedKostnader(int year)
        {
            uC = new Technical.UppföljningConnection();
            return uC.RetrieveBudgetedKostnadsMonths(year);
        }
        public bool ValidateCostsLocked(int month)
        {
            uC = new Technical.UppföljningConnection();
            return uC.ValidateKostnaderLockedDown(month);
        }
     
    }
}
